package Offer;

public class Test15 
{

	public static void main(String[] args) 
	{
		ListNode p1 = new ListNode(1);
		ListNode p2 = new ListNode(2);
		ListNode p3 = new ListNode(3);
		ListNode p4 = new ListNode(4);
		p1.next=p2;
		p2.next=p3;
		p3.next=p4;
		p4.next=null;
		//System.out.println(findLastK(p1,5).value);
		System.out.println(FindListKNode.findListKNode(p1,1).value);

	}
    public static ListNode findLastK(ListNode head,int k)
    {
    	if(head==null||k<=0)
    		return null;
    	ListNode p1=head;
    	for(int i=0;i<k-1;i++)
    	{
    		if(p1.next!=null)
    		{
    			p1=p1.next;
    		}
    		else
    		{
    			return null;
    		}
    	}
    	ListNode p2=head;
    	while(p1.next!=null)
    	{
    		p1=p1.next;
    		p2=p2.next;
    	}
    	return p2;
    }
}

class FindListKNode{
	public static ListNode findListKNode(ListNode listNode, int k ){
		if(listNode == null || k <= 0){
			return null;
		}
		ListNode pListNode1 = listNode;
		for(int i = 0 ; i < k - 1; i ++){
			if(pListNode1.next != null){
				pListNode1 = pListNode1.next;
			}else{
				return null;
			}
		}
		ListNode pListNode2 = listNode;
		while(pListNode1.next != null){
			pListNode1 = pListNode1.next;
			pListNode2 = pListNode2.next;
		}
		return pListNode2;
	}
}
